package com.xn.app.muying.util;

import android.app.Activity;
import android.util.Log;

import com.xn.app.muying.sqlite.DBManager;

/**
 * APP常量
 * Created by gaoge on 2017/1/4.
 */

public class AppConstant {
    /**
     * 通知栏广播
     */
    public static final String MY_ACTION = "com.xn.app.muying.NotificationReceiver";
    /**
     * 一天的时间戳
     */
    public static final long oneDay = 86400000;
    /**
     * 每日免费3次语音解答次数
     */
    public static int ANSWER_TIMES = 3;
    /**
     * 线程休眠秒数
     */
    public static int THREAD_SLEEP = 100;
    /**
     * 0 代表化验单解读  1代表问答功能
     */
    public static int type = -1;
    //保存年月日
    public static long time = 0;
    /**
     * 产检id
     */
    //产检id
    public static String remindId = "";

    /**
     * 获取系统提供的免费次数
     *
     * @param activity 调用对象
     * @return 次数
     */
    public static int getAnswerTimes(Activity activity) {
        //程序如果是第一次进入，就将本次获取次数的时间保存进入程序。如果进入过了，就获取上次保存的时间
        if (Constants.getLongByName(activity, "one_time") == 0) {
            Constants.setLongByName(activity, "one_time", DateUtils.getNumberDate1());
        } else {
            time = Constants.getLongByName(activity, "one_time");
        }

        //如果今天的时间戳减去昨天的时间戳 大于1天，就说明时间已经过去了1天，就重新给予用户免费次数
        //并刷新本次获取次数时间
        if ((DateUtils.getNumberDate1() - time) >= oneDay) {
            Constants.setIntByName(activity, "answer_times", ANSWER_TIMES);
            Constants.setLongByName(activity, "one_time", DateUtils.getNumberDate1());
        }

        //获取当天剩余的次数
        int number = 0;
        number = Constants.getIntByName(activity, "answer_times");

        //如果大于次数总限制，就说明有人外部进入数据库更改次数，这里要重新刷新数据库次数
        //后续加入处理措施
        if (number > ANSWER_TIMES) {
            Constants.setIntByName(activity, "answer_times", ANSWER_TIMES);
            number = ANSWER_TIMES;
        }

        //返回次数
        return number;
    }

    /**
     * 减去一次免费次数
     *
     * @param activity 调用对象
     */
    public static void setAnswerTimes_1(Activity activity) {
        //获取剩余次数
        int mtime = 0;
        mtime = Constants.getIntByName(activity, "answer_times");
        //如果剩余次数大于0的时候,就在原次数上减1
        //如果获取到的次数大于3,就说明有人外部进入数据库更改次数，这里要重新刷新数据
        if ((ANSWER_TIMES + 1) > mtime && mtime > 0) {
            mtime = mtime - 1;
            Constants.setIntByName(activity, "answer_times", mtime);
        } else {
            Constants.setIntByName(activity, "answer_times", ANSWER_TIMES - 1);
        }
    }

}
